/**
 * APITable <https://github.com/apitable/apitable>
 * Copyright (C) 2022 APITable Ltd. <https://apitable.com>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import { IFontVariants } from 'helper';
import { ElementType } from 'react';

export interface ITypographyProps {
  /**
   * class name
   */
  className?: string;
  /**
   * inline style
   */
  style?: React.CSSProperties;
  /**
   * Specify HTML elements to render components
   */
  component?: ElementType;
  /**
   * text color
   */
  color?: string;
  /**
   * Alignment
   */
  align?: 'inherit' | 'left' | 'right' | 'center';
  /**
   * Apply several font styles
   */
  variant?: IFontVariants;
  /**
   * Whether overflow is ellipsis
   */
  ellipsis?: IEllipsis | boolean;
  /**
   * Set tooltip z-index
   */
  tooltipsZIndex?: number;

  onClick?: (e: React.MouseEvent) => void;
  onMouseDown?: (e: React.MouseEvent) => void;
}

export interface IEllipsis {
  rows?: number;
  tooltip?: string;
  visible?: boolean;
}